System resources, such as printers, processors, modems, memory, and even other applications, may be shared amongst various system applications/processes. For example, a communication process may share a modem resource with an email process.
However, typically only one system process can access the resource at any one time. If a lower priority process is using a system resource, other higher priority processes are locked out until the lower priority process has relinquished control.
Systems that employ databases can have one master copy of the information contained in the database and multiple “local” copies. The local copies may be exact copies of the master database information or the local copies may be a subset of the information that is stored in the master database.
In order for the local databases to have the most up-to-date information from the master database, the local databases must be periodically synchronized with the master database. For example, if the master database is updated with new information, the local databases typically will not have this-new information until the databases are synchronized.
One problem with synchronizing databases in a system is that a lower priority process may have a system resource locked while waiting for a local database to synchronize. While the lower priority process has the system resource locked, higher priority processes cannot use the resource. There is a resulting need in the art for a prioritized system that enables system processes having different priority levels to share a system resource.